home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / ultratk.exe / UVTEST.C < prev    next >
C/C++ Source or Header  |  1991-08-19  |  3KB  |  126 lines

  1. /* uvtest.c   A test file for the functions in ULTRA.C  --
  2.               COMPILE AND LINK WITH   VIDEO.OBJ & ULTRA.OBJ
  3. */
  4.  
  5. #include "ultra.h"
  6. #include "video.h"            
  7.  
  8. #include <conio.h>
  9. #include <stdio.h>
  10.  
  11. #define  UP_ARR  72
  12. #define  DN_ARR  80
  13. #define  RT_ARR  77
  14. #define  LF_ARR  75
  15. #define  DEL     83
  16. #define  ESC     27
  17.  
  18. void    make_grid ( void );
  19. extern  video_status  CRT;
  20.  
  21. void main ()
  22. {
  23.    int key, old_attr;
  24.  
  25.    get_video_status();   
  26.    old_attr = CRT.attr;
  27.  
  28.    if ( ultra_loaded() ) {
  29.  
  30.       make_grid();
  31.       
  32.         do {
  33.              key = getch();
  34.              if ( key==0 ) {
  35.                 key = getch();
  36.                 switch ( key ) {
  37.                    case UP_ARR: bump_rows (-1 ); make_grid(); break;
  38.                    case DN_ARR: bump_rows ( 1 ); make_grid(); break;
  39.                    case LF_ARR: bump_cols (-1 ); make_grid(); break;
  40.                    case RT_ARR: bump_cols ( 1 ); make_grid(); break;
  41.                    case DEL   :  
  42.                       if ( ultra_active() ) disable_ultra(); 
  43.                       else                   enable_ultra();
  44.                       make_grid(); break;
  45.                    default: break;
  46.                 }
  47.              }
  48.         } while ( key != ESC );
  49.  
  50.      disable_ultra();
  51.      CRT.attr = old_attr;
  52.      clear_screen();
  53.  
  54.      printf("UltraVision is now disabled.\n");
  55.  
  56.    }
  57.    else printf ("UltraVision is not loaded.\n");
  58. }  
  59.  
  60.  
  61.  
  62. void  make_grid ( void )
  63. {
  64.    int  row, col, mid_col, mid_row;
  65.    char n_string[3], message[100];
  66.    int normal;
  67.  
  68.    if ( CRT.color ) normal=(BLUE<<4)|WHITE;
  69.    else             normal=(LIGHTGRAY<<4)|BLACK;
  70.    CRT.attr = normal;
  71.    
  72.    clear_screen();                      /* puts cursor at 1,1 */
  73.    hide_cursor();
  74.   
  75.    row = 1;
  76.    mid_col  = CRT.cols / 2;
  77.    mid_row  = CRT.rows / 2;
  78.  
  79.    
  80.    while ( row <  CRT.rows ) {
  81.       put_char ( '|' );
  82.       col = 2;
  83.  
  84.          if ( row == mid_row ) {
  85.            while ( col < CRT.cols ) {
  86.              if ( (col%10)==0 ) put_char ( '+' );
  87.              else               put_char ( '-' );
  88.            col++;
  89.            }
  90.          }
  91.          else {
  92.            while ( col < CRT.cols ) {
  93.              if ( col==mid_col ) {
  94.                 sprintf    ( n_string, "%2d", row );
  95.                 put_string ( n_string, normal,row,col );
  96.                 col++;
  97.              }
  98.              else put_char ( '-' );
  99.            col++;
  100.            }
  101.         } 
  102.  
  103.       put_char ( '|' );
  104.    row++;   
  105.    }
  106.  
  107.    sprintf ( message, "R:%2d C:%2d Card:%2d UVMode:%#x Video:%2d", \
  108.               CRT.rows, CRT.cols, get_ultra_card(), get_ultra_mode(),\
  109.               CRT.mode);
  110.               
  111.    put_string ( message, 0,0,0 );
  112.    show_cursor();
  113.  
  114.    goto_rc ( mid_row+2, mid_col-18 );
  115.    put_string ( "Use DN/UP ARR to inc/dec rows.",0,0,0 );
  116.    goto_rc ( mid_row+3, mid_col-18 );
  117.    put_string ( "Use RT/LF ARR to inc/dec cols.",0,0,0 );
  118.    goto_rc ( mid_row+4, mid_col-18 );
  119.    put_string ( "Use DEL Key to toggle UltraVision.",0,0,0 );
  120.    goto_rc ( mid_row+5, mid_col-18 );
  121.    put_string ( "Press ESC to exit ... ",0,0,0 );
  122. }
  123.  
  124.  
  125. /* end uvtest.c */
  126.